package com.loong.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.loong.system.dto.RoleAddDTO;
import com.loong.system.dto.RolePageDTO;
import com.loong.system.dto.RoleUpdateDTO;
import com.loong.system.entity.Role;
import com.loong.system.vo.RoleListVO;
import java.util.List;
import java.util.Map;

/**
 * @author 47349
 * @description 针对表【sys_role(角色表)】的数据库操作Service
 * @createDate 2024-04-26 00:49:31
 */
public interface IRoleService extends IService<Role> {
  /**
   * 获取角色列表
   *
   * @param rolePageDTO
   * @return
   */
  Page<RoleListVO> pageRoleList(RolePageDTO rolePageDTO);

  /**
   * 删除角色
   *
   * @param roleId
   */
  void removeRole(String roleId);

  /**
   * 检查角色判断是否已经注册
   *
   * @param roleAddDTO
   */
  void checkRole(RoleAddDTO roleAddDTO);

  /**
   * 更新角色
   *
   * @param roleUpdateDTO
   */
  void updateRole(RoleUpdateDTO roleUpdateDTO);

  /**
   * 通过角色id获取角色名称
   *
   * @param roleIds
   * @return
   */
  Map<String, String> roleIds2RoleNameMap(List<String> roleIds);

  /**
   * 通过角色标识获取角色id
   *
   * @param roleSigns
   * @return
   */
  List<String> getRoleIdBySign(List<String> roleSigns);

  /**
   * 通过角色id获取角色标识
   *
   * @param roleIds
   * @return
   */
  List<String> getRoleSignsByRoleIds(List<String> roleIds);
}
